#ifndef	__service_thread_data__
#define	__service_thread_data__
/////////////////////////////////////////////////////////////////////////////
const DWORD max_thread_data = 6*1024*1024L;
const DWORD max_thread_num = 500;

class NOVTABLE thread_data
{
public:
	LPSTR Get(long lsize)
	{
		memset(_Data,0,lsize?lsize:(max_thread_data*2));
		return(_Data);
	}
	LPSTR Get2(long lsize)
	{
		memset(_Data+max_thread_data,0,lsize?lsize:max_thread_data);
		return(_Data+max_thread_data);
	}
	BOOL Create(void)
	{
		if(!_Data)
		{
			if(!(_Data=new char[max_thread_data*2])) return(FALSE);
			memset(_Data,0,max_thread_data*2);
		}
		if(!_sqlBuffer)
		{
			if(!(_sqlBuffer=new TCHAR[16*1024L])) return(FALSE);
			memset(_sqlBuffer,0,16*1024L*sizeof(TCHAR));
		}
		return(TRUE);
	}
	thread_data(void):_Data(NULL),_sqlBuffer(NULL)
	{
	}
	~thread_data(void)
	{
		if(_Data)
		{
			delete[] _Data;
			_Data = NULL;
		}
		if(_sqlBuffer)
		{
			delete[] _sqlBuffer;
			_sqlBuffer = NULL;
		}
	}
	LPSTR	_Data;
	LPTSTR	_sqlBuffer;
};
/////////////////////////////////////////////////////////////////////////////
extern thread_data _srvData[max_thread_num];
/////////////////////////////////////////////////////////////////////////////
#endif
